fflush関数は、ファイルポインタで示されるストリームのバッファリングされているデータを強制的に出力(フラッシュ)します。
#include <stdio.h>
int fflush(FILE *stream);
*streamはfopen関数で取得した、ファイルポインタを指定します。
戻り値として、成功した場合は0が、エラーの場合はEOFの値を返します。
バッファに蓄積されたデータは、バッファが満杯になったり、ファイルを閉じるとフラッシュされますので、通常はfflush関数を使う必要はありません。fflush関数は出力結果を直ちに反映したいような場合に使用します。
プログラム 例
#include <stdio.h> #include <stdlib.h> int main(void) { int count; printf('ベルを鳴らす回数を入力してください ==> '); scanf('%d', &count); for ( ; count > 0; --count) { printf('%c', 0x07); /* ベルを鳴らす */ fflush(stdout); sleep(1); } return 0; }
例の実行結果
1秒間隔で、5回ベルが鳴ります。
$ ./fflush.exe ベルを鳴らす回数を入力してください ==> 5 $